// 按需编译，只编译用到的资源
//fis.set('project.files', ['*.tpl', '**/file/**', '/favicon.ico']);
// fis.set('project.ignore', [
//     'output/**',
//     'node_modules/**',
//     '.git/**',
//     '.svn/**'
// ]);
// fis.config.merge('modules.parser', {
//     sass : 'sass',
//     scss: 'sass'
// });

// // 启用插件
// fis.hook('relative');
//
// // 让所有文件，都使用相对路径。
// fis.match('**', {
//     relative: true
// })

//// 采用 commonJs 规范支持模块化组建开发
//fis.hook('commonJs', {
//  packages: [
//
//    // 短路径支持
//    // 可以通过 require('/libs/alert') 依赖 `static/libs/alert.js`
//    {
//      name: 'libs',
//      location: './static/libs'
//    }
//  ]
//});

//除模板之外的文件产出路径
fis.match(/(.*)/i, {
    release: './sq/build/static/$1',
    url: './static$1'
});


// 模板文件产出路径
fis.match(/(\/.*\.html)$/i, {
    release: './sq/build$1',
    url: '$1'
});

fis.match(/(\/img\/.*)$/i, {
    release: './sq/build/static/$1',
    url: '../$1'
});

fis.match(/(\/font\/.*)$/i, {
    release: './sq/build/static/css/$1',
    url: '.$1'
});




// // 配置 map.json 产出路径。
// fis.match('/map.json', {
//     release: '/map/map.json'
// });

// // 让所有的 js 都用模块化的方式开发。
// fis.match('*.js', {
//     isMod: true
// });
//
// // static/js 下面放非模块化 js
// fis.match('/static/js/*.js', {
//     isMod: false
// });

// // 给组件下面的 js 设置同名依赖
// fis.match('/components/**.js', {
//     useSameNameRequire: true
// });

// 支持前端模板，支持 js 内嵌后，直接翻译成可执行的 function
//fis.match('*.tmpl', {
//    parser: fis.plugin('utc'),
//    rExt: '.js',
//    release: false
//});

// fis.match('*.less', {
//     parser: fis.plugin('less'), //启用fis-parser-less插件
//     rExt: '.css'
// });

fis.match('**/build/**', {
    release: false
});

fis.match('*.less', {
    parser: 'less2',
    rExt: '.css'
});

fis.match('*.{css,less,scss}', {
    preprocessor: fis.plugin('autoprefixer', {
        "browsers": ["last 2 Chrome versions", "iOS >= 4", "ie >= 8", "firefox >= 15"],
        "cascade": true
    })
});

fis.match('*', {
    deploy: fis.plugin('local-deliver', {
        to: '../'
    })
});

fis.match('*.{js,css,png,jpg,less}', {
    useHash: true // 开启文件 md5
});



/*
    测试环境和线上环境
*/
fis.media('prod')
    .match('*.js', {
        optimizer: fis.plugin('uglify-js')
    })
    .match('*.{css,less}', {
        optimizer: fis.plugin('clean-css')
    })
    //已经压缩的资源不要再次压缩，二次压缩会导致非常慢的编译速度
    .match(/(.*\/.+\.min\.(?:js|css|less))$/i, {
        optimizer: null
    })
    .match('::package', {
        postpackager: fis.plugin('loader', {
            processor: {
                '.tpl': 'html',
                // 支持 markdown 文档
                '.md': 'html'
            },
            allInOne: true
        }),
        spriter: fis.plugin('csssprites', {
            layout: 'matrix',
            margin: '15'
        })
    })
    .match('*.{css,less}', {
        // 给匹配到的文件分配属性 `useSprite`
        useSprite: true
    })
    .match('*.{js,css,png,jpg,less}', {
        useHash: true // 开启文件 md5
    });
